//package socket.dwr;
//
//
//import java.util.Date;
//
//import javax.servlet.http.HttpSession;
//
//import org.apache.log4j.Logger;
//import org.apache.struts2.ServletActionContext;
//import org.directwebremoting.WebContextFactory;
//
//import charge.body.ChargeUtil;
//import commons.pub.MethodResult;
//import commons.vo.Tbl_PosTerminalDic;
//import information.body.Consume;
//import posTerminal.service.PosTerminalService;
//import socket.CRC;
//import socket.Header;
//import socket.HeaderStr;
//import socket.RecvUtil;
//import socket.SocketClient;
//import socket.body.ApplyKey;
//import socket.service.WasteSNService;
//import utils.DateUtil;
//import utils.NumberUtil;
//
//
//public class SocketDwr {
//	private MethodResult mr=new MethodResult("");
//	private PosTerminalService posTerminalService;
//	private WasteSNService wasteSNService;
//	private static final  Logger log = Logger.getLogger(SocketDwr.class);
//	/**
//	 * 加密因子申请 
//	 * @return flag
//	 * @throws Exception
//	 * @author 郑鲁业
//	 */
//	public String applyKey()throws Exception{
//		String flag=null;
//		String[] arr=null;
//		Header header=new Header();
//		ApplyKey applyKey=new ApplyKey();
//		HttpSession httpSession = WebContextFactory.get().getSession();
//		Tbl_PosTerminalDic posTerm = (Tbl_PosTerminalDic)httpSession.getAttribute("posTerm");
//		//增加机构
//		applyKey.setPosID(String.valueOf(posTerm.getSpare1()));
//		//applyKey.setTerminalID((posTerm.getTerminalID().trim()+"  "));
//		applyKey.setWasteSN(wasteSNService.getWasteSN());
//		header.setMsgType("00");//加密因子申请
//		header.setVerifyCode(CRC.getCRC32(HeaderStr.getBodyStr(applyKey)));
//		header.setMsgLen(NumberUtil.formatNumber(HeaderStr.getConStr(header).length()+HeaderStr.getBodyStr(applyKey).length(), "00000000"));
//		String sendMsg=HeaderStr.getConStr(header)+HeaderStr.getBodyStr(applyKey);
//		//flag=RecvUtil.getFlag(sendMsg);
//		RecvUtil recvUtil=new RecvUtil();
//		flag=recvUtil.getFlag(sendMsg);
//		if (flag.indexOf("1:::")!=-1) {
//			String recvBody=flag.split(":::")[1];
//			System.out.println("报文体长度："+recvBody.length());
//			arr=HeaderStr.getBody(recvBody);
//			for (int i = 0; i < arr.length; i++) {
//				log.info("第"+i+"行"+arr[i]);
//			}
//			//更新终端字典表
//			//Date applyTime=DateUtil.parseStringToDateTime2(arr[4]);
//			//String key =arr[5]+arr[6];
//			if (posTerminalService.editKey(arr, mr)) {
//				flag="";
//			}else {
//				flag="更新数据库加密因子错误";
//			}
//			
//		}else{
//			log.info("错误代码"+flag);
//			flag="连接中心网络超时，请检查与中心专线网络是否通畅";
//		}
//		log.info(flag);
//		return flag;
//	}
//	/**
//	 * 请求消费明细
//	 * @param arrs
//	 * @return
//	 * @throws Exception
//	 * @ 报文9122
//	 */
//	public String applyConsume(String[] arrs )throws Exception{
//		String flag=null;
//		Header header=new Header();
//		Consume consume=new Consume();
//		HttpSession httpSession = WebContextFactory.get().getSession();
//		Tbl_PosTerminalDic posTerm = (Tbl_PosTerminalDic)httpSession.getAttribute("posTerm");
//		//增加机构
//		consume.setPosID(String.valueOf(posTerm.getSpare1()));
//		consume.setWasteSN(wasteSNService.getWasteSN());
//		consume.setCardID(arrs[0]);
//		consume.setCardType(arrs[1]);
//		consume.setStarttime(arrs[2]+"000000");
//		consume.setEndtime(arrs[3]+"235959");
//		header.setMsgType("22");//加密因子申请
//		header.setVerifyCode(CRC.getCRC32(HeaderStr.getConsumeBodyStr(consume)));
//		header.setMsgLen(NumberUtil.formatNumber(HeaderStr.getConStr(header).length()+HeaderStr.getConsumeBodyStr(consume).length(), "00000000"));
//		String sendMsg=HeaderStr.getConStr(header)+HeaderStr.getConsumeBodyStr(consume);
//		//flag=RecvUtil.getFlag(sendMsg);
//		RecvUtil recvUtil=new RecvUtil();
//		flag=recvUtil.getFlag(sendMsg);
//		if (flag.indexOf("1::")!=-1) {
//			String recvBody=flag.split("::")[1];
//			System.out.println("报文体长度："+recvBody.length());
//			int preFlag =ChargeUtil.getPreChargeFlag(recvBody);
//			if (preFlag==0) {
//				flag="";
//			}
//			
//		}else if (flag.indexOf("error:")!=-1) {
//			int chargeFlag=Integer.valueOf(flag.split(":")[1]);
//			String msg=null;
//			if (chargeFlag==1) {
//				msg="查询失败";
//			}else if (chargeFlag==2) {
//				msg="无交易数据";
//			}else if (chargeFlag==3) {
//				msg="终端校验失败";
//			}else {
//				msg="加密因子未申请或者连接中心网络超时";
//			}
//				flag="错误原因："+msg;
//		}else {
//			flag="错误原因："+flag;
//		}
//		log.info(flag);
//		return flag;
//	}
//	public PosTerminalService getPosTerminalService() {
//		return posTerminalService;
//	}
//	public void setPosTerminalService(PosTerminalService posTerminalService) {
//		this.posTerminalService = posTerminalService;
//	}
//	public WasteSNService getWasteSNService() {
//		return wasteSNService;
//	}
//	public void setWasteSNService(WasteSNService wasteSNService) {
//		this.wasteSNService = wasteSNService;
//	}
//	public MethodResult getMr() {
//		return mr;
//	}
//	public void setMr(MethodResult mr) {
//		this.mr = mr;
//	}
//	
//}
